//给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。 
//
// 示例 1: 
//
// 输入: 123
//输出: 321
// 
//
// 示例 2: 
//
// 输入: -123
//输出: -321
// 
//
// 示例 3: 
//
// 输入: 120
//输出: 21
// 
//
// 注意: 
//
// 假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为 [−231, 231 − 1]。请根据这个假设，如果反转后整数溢出那么就返回 0。 
// Related Topics 数学

package com.liuzhihang.leetcode.editor.cn;

public class ReverseInteger {
    public static void main(String[] args) {
        Solution solution = new ReverseInteger().new Solution();

        System.out.println(solution.reverse(-2147483412));
    }


    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public int reverse(int x) {

            int min = 0x80000000;
            int max = 0x7fffffff;

            int abs = (x < 0) ? -x : x;

            long result = 0;

            while (abs > 0) {

                int end = abs % 10;
                result = result * 10 + end;
                abs = abs / 10;

            }

            if (result > max) {
                return 0;
            }


            return x > 0 ? (int)result : -(int)result;


        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}
